#include "rwmanager.h"
#include <QCryptographicHash>
#include <QFile>
#include <QFileDevice>
#include <QDebug>

RWManager::RWManager()
{

}


///添加仓库目录文件
int RWManager::addRootFiles(QString filepath)
{
    _rootFiles.append(filepath);
    return _rootFiles.size();
}

///添加工作目录文件
int RWManager::addWorkFiles(QString filepath)
{
    _workFiles.append(filepath);
    return _workFiles.size();
}

///计算每个文件hashcode
QByteArray RWManager::calHash(QString filepath)
{
    QFile file(filepath);
    if(file.open(QIODevice::ReadOnly))
    {
        QCryptographicHash Hash(QCryptographicHash::Md5);
        while(file.atEnd() == false)
        {
            QByteArray buf = file.read(5*1024*1024);        /// 每次读取100M
            Hash.addData(buf);                              /// 将数据添加到Hash中
        }
        QByteArray md5 = Hash.result();                     /// 返回最终Hash值
        QByteArray hexmd = md5.toHex();                     /// 转换成16进制
        return hexmd;
    }
    return nullptr;
}


